%%% Local Variables:
%%% coding: utf-8
%%% mode: latex
%%% TeX-engine: xetex
%%% End:

\documentclass[14pt, a4paper]{extreport}

\usepackage{graphicx}
\DeclareGraphicsExtensions{.jpg}

\usepackage{hyperref}

\usepackage{mathtext}
\usepackage[utf8]{inputenc}

\usepackage{unicode-math}
\setmathfont{XITSMath-Regular.otf}

\usepackage{amsfonts}
\usepackage{amsmath}

\usepackage[english,russian]{babel}

\usepackage{fontspec} 
\defaultfontfeatures{Ligatures={TeX},Renderer=Basic}
\setmainfont[Ligatures={TeX,Historic}]{Times New Roman}

\usepackage{xcolor}

\usepackage{tabularx}

\setlength{\parindent}{1.25cm}
\usepackage{indentfirst} %отступ первой строки первого абзаца
%\linespread{1.25}

\usepackage{geometry}
\geometry{left=3cm}
\geometry{right=1.5cm}
\geometry{top=2cm}
\geometry{bottom=2cm}

\hypersetup{
    colorlinks,
    citecolor=black,
    filecolor=black,
    linkcolor=black,
    urlcolor=black
}

\usepackage{titlesec} % оформление заголовков

\titleformat{\chapter}[block]
	{\centering\bfseries}
        {\thechapter}
        {}
	{\MakeUppercase}
\titleformat{\section}[block]
	{\newpage\centering\bfseries}
        {\thesection}
        {1em}{}
\titleformat{\subsection}[block]
	{\bfseries}
        {\thesubsection}
        {1em}{}

% Оформление содержания
\usepackage{titletoc}
\dottedcontents{section}[0cm]{}{1em}{0.25pc}
\dottedcontents{subsection}[1.25cm]{}{2em}{0.25pc}
\dottedcontents{chapter}[0cm]{}{1em}{0.25pc}

\usepackage{caption}
\DeclareCaptionLabelSeparator{defffis}{ --- }
\captionsetup{labelsep=defffis}
\captionsetup[figure]{justification=centering,labelsep=defffis, labelformat=empty}
\captionsetup[table]{justification=raggedright, singlelinecheck=off}

\usepackage{array}
\newcommand\ChangeRT[1]{\noalign{\hrule height #1}}

\renewcommand{\thechapter}{\hspace*{-1em}}
\renewcommand{\thesection}{\arabic{section}}

\usepackage{setspace}

\begin{document}
\def\contentsname{СОДЕРЖАНИЕ}

\begin{titlepage}
\newpage
\begin{figure}[h!]
    \centering
    \includegraphics[scale=0.3]{MIREA_GERB}
\end{figure}
\vspace{-0.7cm}
\begin{center}
\small МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ \\
Федеральное государственное бюджетное образовательное учреждение \\
высшего образования \\
\textbf{''МИРЭА - Российский технологический университет''} \\
    \vspace{0.25cm}
\large     \textbf{РТУ МИРЭА} \\
\end{center}
    \vspace{0.25cm}
\hrule
    \vspace{0.05cm}
\hrule
\begin{center}
\small Институт кибернетики \\
    Кафедра общей информатики \\
\end{center}
    \vspace{2em}
\begin{center}
\large \textbf{ОТЧЕТ} \\
\large \textbf{ПО ПРАКТИЧЕСКОЙ РАБОТЕ №11} \\
\large <<Синтез четырехразрядного счетчика с параллельным переносом между разрядами двумя способами>> \\
\large \textbf{по дисциплине} \\
\large <<ИНФОРМАТИКА>> \\
\end{center}
    \vspace{5em}
\begin{flushleft}
\small Выполнил студент группы ИВБО-02-21 \hfill Иванов И.М. \\
\vspace{2em}
\small Принял старший преподаватель \hfill Смирнов С.С. \\
    \vspace{3em}
\end{flushleft}
\begin{flushleft}
\hspace{0.05\textwidth}\footnotesize Практическая \hspace{0.25\textwidth} <<\underline{\hspace{0.025\textwidth}}>>\underline{\hspace{0.09\textwidth}}2021 г. \hspace{0.15\textwidth} \underline{\hspace{0.15\textwidth}} \\
    \vspace{0.75em}
\hspace{0.05\textwidth}работа выполнена \\
    \vspace{1em}
\hspace{0.15\textwidth}\footnotesize <<Зачтено>> \hspace{0.185\textwidth} <<\underline{\hspace{0.025\textwidth}}>>\underline{\hspace{0.09\textwidth}}2021 г. \hspace{0.15\textwidth} \underline{\hspace{0.15\textwidth}}
	\vspace{5em}
\end{flushleft}
\begin{center}
	\small Москва 2021
\end{center}
\end{titlepage}
\begin{spacing}{1.5}
\setcounter{page}{2}
\tableofcontents
\section{ПОСТАНОВКА ЗАДАЧИ}
Разработать счётчик с параллельным переносом на D-триггерах двумя способами: с оптимальной схемой управления, выполненной на логических элементах общего базиса; со схемой управления, реализованной на преобразователе кодов (быстрая реализация, но не оптимальная схема).

В качестве исходных данных используется значения индикатора CNT лабораторного комплекса:
\begin{itemize}
  \setlength\itemsep{-0.5em}
  \item[--] Направление счёта --- вычитание;
  \item[--] Максимальное значение счётчика --- d (13 в десятичной системе);
  \item[--] Шаг счёта --- 4.
\end{itemize}

Протестировать работу схем и убедиться в их правильности.
\section{ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ}
\subsection{Таблица переходов счётчика}
По исходным данным построим талицу перехода счётчика (табл. \ref{table:tab1}).
\begin{table}[htp]
  \caption{Таблица переходов счётчика}
  \begin{tabular}{!{\vrule width 1.75pt} c | c | c | c !{\vrule width 1.75pt} c | c | c | c !{\vrule width 1.75pt}}
    \ChangeRT{1.75pt}
    $Q_3(t)$ & $Q_2(t)$ & $Q_1(t)$ & $Q_0(t)$ & $Q_3(t + 1)$ & $Q_2(t + 1)$ & $Q_1(t + 1)$ & $Q_0(t + 1)$ \cr \ChangeRT{1.75pt}
    0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \cr \hline
    0 & 0 & 0 & 1 & 1 & 0 & 1 & 1 \cr \hline
    0 & 0 & 1 & 0 & 1 & 1 & 0 & 0 \cr \hline
    0 & 0 & 1 & 1 & 1 & 1 & 0 & 1 \cr \hline
    0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \cr \hline
    0 & 1 & 0 & 1 & 0 & 0 & 0 & 1 \cr \hline
    0 & 1 & 1 & 0 & 0 & 0 & 1 & 0 \cr \hline
    0 & 1 & 1 & 1 & 0 & 0 & 1 & 1 \cr \hline
    1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \cr \hline
    1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 \cr \hline
    1 & 0 & 1 & 0 & 0 & 1 & 1 & 0 \cr \hline
    1 & 0 & 1 & 1 & 0 & 1 & 1 & 1 \cr \hline
    1 & 1 & 0 & 0 & 1 & 0 & 0 & 0 \cr \hline
    1 & 1 & 0 & 1 & 1 & 0 & 0 & 1 \cr \hline
    1 & 1 & 1 & 0 & * & * & * & * \cr \hline
    1 & 1 & 1 & 1 & * & * & * & * \cr \ChangeRT{1.75pt}
  \end{tabular}
  \label{table:tab1}
\end{table}

Таблица переходов является частично определенной: состояния 1110 и 
1111 согласно исходным данным возникать никогда не должны, поэтому очередное состояние $Q(t+1)$  для  этих случаев  мы  можем интерпретировать  как  нам удобно в целях минимизации управляющей логики.

\subsection{Проектирование оптимальных схем управления триггерами (через минимизацию при помощи карт Карно)}

Рассматриваем столбцы $Q_i(t + 1)$ как самостоятельные функции от четырёх переменных и проводим их минимизацию.

Допустим, начнем с функции $Q_3(t + 1)$. Оценим сложность минимальных форм, которые для нее получатся, по количеству переменных, входящих в них, и выберем оптимальную форму. Для этого построим необходимые карты Карно.

На рис. \ref{fig:karno-mdnf-q3} показана карта МДНФ функции $Q_3(t + 1)$.
\begin{figure}[htp]
  \centering
  \includegraphics[scale=2.0]{lab11-karno-mdnf-q3}
  \caption{Рисунок 1 --- Карта Карно для МДНФ функции $Q_3(t + 1)$}
  \label{fig:karno-mdnf-q3}
\end{figure}

Пока не будем записывать формулу МДНФ, но оценим ее сложность. Это легко сделать, поскольку известно количество переменных, необходимых для описания каждого из интервалов. Напомним это количество для случая логической функции от четырех переменных:
\begin{itemize}
  \setlength\itemsep{-0.5em}
  \item[--] интервал размера 1 описывается четыремя переменными;
  \item[--] интервал размера 2 описывается тремя переменными;
  \item[--] интервал размера 4 описывается двумя переменными;
  \item[--] интервал размера 8 описывается одной переменной.
\end{itemize}

Из рисунка \ref{fig:karno-mdnf-q3} видно, что в нашем случае МДНФ $Q_3(t+1)$ будет описана при помощи $2 + 2 = 4$ переменных или их отрицаний.

Теперь проделаем аналогичную операцию для МКНФ этой же функции. Возьмем за основу уже построенную карту на рис. \ref{fig:karno-mdnf-q3}, ведь на всех пустых клетках там стоят нули. Кроме того, для повышения наглядности удалим единичные значения. Попытаемся интерпретировать звездочки как нулевые значения функции. Выделим интервалы, получится следующий рис. \ref{fig:karno-mknf-q3}.
\begin{figure}[htp]
  \centering
  \includegraphics[scale=2.0]{lab11-karno-mknf-q3}
  \caption{Рисунок 2 --- Карта Карно для МКНФ функции $Q_3(t + 1)$}
  \label{fig:karno-mknf-q3}
\end{figure}

На рис.\ref{fig:karno-mknf-q3} хорошо видно, что понимание звездочек как нулей не улучшает существующие интервалы, но приводит к ненужному усложнению: появляется лишний интервал размера четыре. Поэтому в данном случае звездочки следует интерпретировать как единичные значения. Итого имеем: два интервала размера четыре. Значит МКНФ будет иметь $2 + 2 = 4$ переменных либо их отрицаний, что эквивалентно сложности МДНФ. Следовательно, нам все равно, какую минимальную форму взять.

Запишем МДНФ для $Q_3(t+1)$.

\begin{center}
  \vspace{-4em}
  \begin{align}
    Q_3(t+1)_{\text{МДНФ}} = \overline{Q_3(t)} \& \overline{Q_2(t)} + Q_3(t) \& Q_2(t) \label{q3-mdnf}
  \end{align}
\end{center}

Далее  по  приведенной  методике  рассуждений  рассмотрим  функцию $Q_2(t+1)$. Сначала построим карту Карно для МДНФ (рис. \ref{fig:karno-mdnf-q2}).

\begin{figure}[htp]
  \centering
  \includegraphics[scale=2.0]{lab11-karno-mdnf-q2}
  \caption{Рисунок 3 --- Карта Карно для МДНФ функции $Q_2(t+1)$}
  \label{fig:karno-mdnf-q2}
\end{figure}

Оценим сложность МДНФ: $2 * 2 = 4$ переменных или их отрицаний.

Теперь построим интервалы из нулевых значений и попытаемся интерпретировать звёздочки как нули, чтобы построить МКНФ (рис. \ref{fig:karno-mknf-q2}).

\begin{figure}[htp]
  \centering
  \includegraphics[scale=2.0]{lab11-karno-mknf-q2}
  \caption{Рисунок 4 --- Карта Карно для МКНФ функции $Q_2(t+1)$}
  \label{fig:karno-mknf-q2}
\end{figure}

Оценим сложность МКНФ: $2 + 1 = 3$ переменных или их отрицаний.

Таким образом получается, что МКНФ для $Q_2(t+1)$ строить выгоднее, чем МДНФ.

Запишем формулу для МКНФ $Q_2(t+1)$.

\begin{center}
  \vspace{-4em}
  \begin{align}
    Q_2(t+1)_{\text{МКНФ}} = (Q_3(t) + Q_1(t)) \& \overline{Q_2(t)} \label{q2-mknf}
  \end{align}
\end{center}

Переходим  к  рассмотрению $Q_1(t+1)$.  Построим карту Карно для записи МДНФ этой функции (рис. \ref{fig:karno-mdnf-q1}).

\begin{figure}[htp]
  \centering
  \includegraphics[scale=2.0]{lab11-karno-mdnf-q1}
  \caption{Рисунок 5 --- Карта Карно для МДНФ функции $Q_1(t+1)$}
  \label{fig:karno-mdnf-q1}
\end{figure}

Оценим сложность МДНФ: $3 + 2*2 = 7$ переменных или их отрицаний.

Построим карту Карно для МКНФ функции $Q_1(t+1)$ (рис. \ref{fig:karno-mknf-q1}).
\begin{figure}[htp]
  \centering
  \includegraphics[scale=2.0]{lab11-karno-mknf-q1}
  \caption{Рисунок 5 --- Карта Карно для МКНФ функции $Q_1(t+1)$}
  \label{fig:karno-mknf-q1}
\end{figure}

Оценим сложность МКНФ: $3 + 2*2 = 7$ переменных или их отрицаний.

Таким образом получается, что сложность МКНФ и МДНФ $Q_1(t+1)$ одинакова, поэтому нет разницы в выборе одной их них.

Запишем формулу МДНФ $Q_1(t+1)$.
\begin{center}
  \vspace{-4em}
  \begin{align}
    Q_1(t+1)_{\text{МДНФ}} = Q_2(t) \& Q_1(t) + Q_3(t) \& Q_1(t) + \overline{Q_3(t)} \& \overline{Q_2(t)} \& \overline{Q_1(t)} \label{q1-mdnf}
  \end{align}
\end{center}

Из таблицы \ref{table:tab1} видно, что $Q_0(t+1) = Q_0(t)$.

\subsection{Реализация счетчика с оптимальной схемой управления}
При помощи полученных формул выполним реализацию схем управления для триггеров счетчика (рис. \ref{fig:pic1})
\begin{figure}[htp]
  \centering
  \includegraphics[scale=0.20]{lab11-pic1}
  \caption{Рисунок 6 --- Схема счетчика с подключением к устройству проверки}
  \label{fig:pic1}
\end{figure}

Как видно из рисунка, тестирование показало правильность работы схемы.

\subsection{Реализация счетчика на преобразователей кодов}
Выполним быструю реализацию счетчика при помощи преобразователя кодов в качестве схемы управления триггерами.

Здесь не требуется никакая минимизация, необходимо просто по таблице переходов правильно соединить выходы дешифратора со входами шифратора.

Таким образом, можно сразу построить схему счетчика (рис.\ref{fig:pic2}). 
\begin{figure}[htp]
  \centering
  \includegraphics[scale=0.20]{lab11-pic2}
  \caption{Рисунок 7 --- Схема счетчика с подключением к устройству проверки}
  \label{fig:pic2}
\end{figure}

Обратите внимание, для данной реализации счетчика уже не требуются инверсные выходы триггеров. 

Тестирование показало, что схема работает правильно.

\section{ВЫВОДЫ}
В ходе данной лабораторной работы был разработан счётчик с параллельным переносом на D-триггерах при помощи оптимальной схемы управления и схемы управления, реализованной на преобразователе кодов. Данные схемы были протестированы и их работоспособность была подтверждена.
\section{СПИСОК ИНФОРМАЦИОННЫХ ИСТОЧНИКОВ}
1. Смирнов С.С., Карпов Д.А. Информатика: Методические указания по
выполнению практических работ. / С.С. Смирнов, Д.А. Карпов—М., МИРЭА —
Российский технологический университет, 2020.–102с.

2. Воронов Г.Б. Лекции по информатике. / Г.Б. Воронов. –М.: МИРЭА —
Российский технологический университет, 2021.: URL: https://online-edu.mirea.ru/mod/webinars/view.php?id=262229 (дата обращения 11.11.2021)

\end{spacing}
\end{document}